using System;
using Sinacor.Infra.UI.Common;
using System.Collections.ObjectModel;
using System.Collections.Generic;

namespace Sinacor.UI.Bovespa.ManutencaoOrdens.Model.Parameter
{

	/// <summary>
	/// Modelo de Filtro Ordem
	/// </summary>
	 [Serializable]
	 public class FiltroOrdem : BaseModel {

		private bool _apenasPendentesJustificativa;
        private bool _apenasDiscricionariasNaoDistribuidas;
		private bool _apenasRecebidasViaCanal;
		private bool _apenasSemCliente;
		private bool _apenasValidas;
		private string _ativo;
		private int? _broker;
		private bool _casadas;
		private bool _casadasParcialmente;
		private int? _cliente;
		private DateTime? _dataPregao;
		private bool _naoCasadas;
		private bool _naoCasadasPreBoleto;
        private ManutencaoOrdens.Model.Enum.NaturezaOperacao? _naturezaOperacao;
		private int? _numero;
		private int? _operador;
        private List<ManutencaoOrdens.Model.Enum.SituacaoOrdem> _situacao;
        private bool? _permiteCasamento;
        private bool? _distribuida;
        private string _apelidoCliente;
        private bool? _discricionaria; 
         
        public FiltroOrdem(){}

		public bool ApenasPendentesJustificativa{
			get{
				return _apenasPendentesJustificativa;
			}
			set{
                _apenasPendentesJustificativa = value;
                OnPropertyChanged("ApenasPendentesJustificativa");
			}
		}

        public bool ApenasDiscricionariasNaoDistribuidas
        {
            get { return _apenasDiscricionariasNaoDistribuidas; }
            set { SetValue<bool>("ApenasDiscricionariasNaoDistribuidas", ref _apenasDiscricionariasNaoDistribuidas, value); }
        }

		public bool ApenasRecebidasViaCanal{
			get{
				return _apenasRecebidasViaCanal;
			}
			set{
				_apenasRecebidasViaCanal = value;
                OnPropertyChanged("ApenasRecebidasViaCanal");
			}
		}

		public bool ApenasSemCliente{
			get{
				return _apenasSemCliente;
			}
			set{
				_apenasSemCliente = value;
                OnPropertyChanged("ApenasSemCliente");
			}
		}

		public bool ApenasValidas{
			get{
				return _apenasValidas;
			}
			set{
				_apenasValidas = value;
                OnPropertyChanged("ApenasValidas");
			}
		}

		public string Ativo{
			get{
				return _ativo;
			}
			set{
				_ativo = value;
                OnPropertyChanged("Ativo");
			}
		}

		public int? Broker{
			get{
				return _broker;
			}
			set{
                _broker = value;
                OnPropertyChanged("Broker");
			}
		}

		public bool Casadas{
			get{
				return _casadas;
			}
			set{
				_casadas = value;
                OnPropertyChanged("Casadas");
			}
		}

		public bool CasadasParcialmente{
			get{
				return _casadasParcialmente;
			}
			set{
				_casadasParcialmente = value;
                OnPropertyChanged("CasadasParcialmente");
			}
		}

		public int? Cliente{
			get{
				return _cliente;
			}
			set{
				_cliente = value;
                OnPropertyChanged("Cliente");
			}
		}

		public DateTime? DataPregao{
			get{
				return _dataPregao;
			}
			set{
				_dataPregao = value;
                OnPropertyChanged("DataPregao");
			}
		}

		public bool NaoCasadas{
			get{
				return _naoCasadas;
			}
			set{
				_naoCasadas = value;
                OnPropertyChanged("NaoCasadas");
			}
		}

		public bool NaoCasadasPreBoleto{
			get{
				return _naoCasadasPreBoleto;
			}
			set{
				_naoCasadasPreBoleto = value;
                OnPropertyChanged("NaoCasadasPreBoleto");
			}
		}

		public ManutencaoOrdens.Model.Enum.NaturezaOperacao? NaturezaOperacao{
			get{
				return _naturezaOperacao;
			}
			set{
				_naturezaOperacao = value;
                OnPropertyChanged("NaturezaOperacao");
			}
		}

		public int? Numero{
			get{
				return _numero;
			}
			set{
				_numero = value;
                OnPropertyChanged("Numero");
			}
		}

		public int? Operador{
			get{
				return _operador;
			}
			set{
				_operador = value;
                OnPropertyChanged("Operador");
			}
		}

        public List<ManutencaoOrdens.Model.Enum.SituacaoOrdem> Situacao
        {
			get{
				return _situacao;
			}
			set{
				_situacao = value;
                OnPropertyChanged("Situacao");
			}
		}

        public bool? PermiteCasamento
        {
            get { return _permiteCasamento; }
            set 
            {
                _permiteCasamento = value;
                OnPropertyChanged("PermiteCasamento");
            }
        }

        public bool? Distribuida
        {
            get { return _distribuida; }
            set 
            { 
                _distribuida = value;
                OnPropertyChanged("Distribuida");
            }
        }

        public string ApelidoCliente
        {
            get { return _apelidoCliente; }
            set 
            { 
                _apelidoCliente = value;
                OnPropertyChanged("ApelidoCliente");
            }
        }

        public bool? Discricionaria
        {
            get { return _discricionaria; }
            set
            {
                _discricionaria = value;
                SetValue<bool?>("Discricionaria", ref _discricionaria, value);
                
            }
        }

	}

}